// const nums1 = [1, 2, 3, 0, 0, 0], m = 3, nums2 = [2, 5, 6], n = 3
// // 输出：[1,2,2,3,5,6]
const nums1 = [0], m = 0, nums2 = [1], n = 1
// 输出：[1]
var merge = function (nums1, m, nums2, n) {
  let res = [];
  // 初始长度 nums1.length = m + n

  let i = nums1.length - 1;//快指针j 慢指针i
  m--;
  n--;
  while (n >= 0) {
    // 数组num1 如果 全部num2数组全部排完了 就不用排了
    debugger
    while (m >= 0 && nums2[n] < nums1[m]) {
      // nums1的尾巴0要跟nums1的数交换 不然跳出外层的数据的时候 取值错误
      // nums1[i] = nums2[n];
      [nums1[i], nums1[m]] = [nums1[m], nums1[i]];
      i--;
      m--;
    }
    // nums1[i] = nums2[m];
    [nums1[i], nums2[n]] = [nums2[n], nums1[i]];
    i--;
    n--;

  }

  return nums1;

};

process.memoryUsage();

console.log(merge(nums1, m, nums2, n));

